home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 7
/
FM Towns Free Software Collection 7.iso
/
game
/
gomoku
/
gomoku.bas
< prev
next >
Wrap
BASIC Source File
|
1993-11-30
|
3KB
|
77 lines
10 SCREEN 0 : SCREEN@ 0 : COLOR 7,0,,4 : CLS : DIM S%(100000)
20 WINDOW(0,0)-(639,479) : VIEW(0,0)-(639,479) : ON ERROR GOTO *ERROR
30 RANDOMIZE TIME
40 PLAY"t255l48v12@77" : LOAD@"q:\fj2\se\people\laughter.snd",S%
50 LINE(0,0)-(639,479),PSET,%6,BF : LOAD@"q:\fj2\img_tg\back16\bk16_04.tif"
60 MXX=1 : MXY=1 : MNX=31 : MNY=23 : TX=16 : TY=12
70 DIM PST(32,24),PTS(32,24),TX(250),TY(250)
80 FOR J=0 TO 24 STEP 24 : FOR I=0 TO 32 : PST(I,J)=-2 : NEXT : NEXT
90 FOR I=0 TO 32 STEP 32 : FOR J=1 TO 23 : PST(I,J)=-2 : NEXT : NEXT
100 FOR I=20 TO 620 STEP 20 : LINE(I,20)-(I,460),PSET,0 : NEXT
110 FOR I=20 TO 460 STEP 20 : LINE(20,I)-(620,I),PSET,0 : NEXT
130 '
140 MOUSE 0 : MOUSE 1,TX*20,TY*20,1 : MOUSE 4,12,12,625,465
150 TX=(MOUSE(4,0)+10)\20 : TY=(MOUSE(5,0)+10)\20
160 IF MOUSE(2,0)=0 OR PST(TX,TY)<>0 THEN 150
170 CIRCLE(TX*20,TY*20),10,7,,,,F : PST(TX,TY)=-1 : PLAY"o3a"
180 MOUSE 5 : GOSUB 400
190 '
200 '
210 A=-1 : GOSUB 1000
220 TAX=0 : MAX=0 : TX=1 : TY=1 : SEL=0
230 FOR YY=MNY TO MXY : FOR XX=MNX TO MXX
240 IF PTS(XX,YY)>TAX THEN SEL=0 : TAX=PTS(XX,YY) : TX(SEL)=XX : TY(SEL)=YY
250 IF PTS(XX,YY)=TAX THEN SEL=SEL+1 : TX(SEL)=XX : TY(SEL)=YY
260 PTS(XX,YY)=0 : NEXT : NEXT : SEL=INT(RND*(SEL+1)) : TX=TX(SEL) : TY=TY(SEL)
270 LOCATE 1,0 : PRINT "防御指数 :";TAX : IF TAX>=5 THEN 360
280 '
290 A=1 : GOSUB 1000
300 MX=1 : MY=1
310 FOR YY=MNY TO MXY : FOR XX=MNX TO MXX
320 IF PTS(XX,YY)>=MAX THEN MAX=PTS(XX,YY) : MX=XX : MY=YY
330 PTS(XX,YY)=0 : NEXT : NEXT
340 LOCATE 23,0 : PRINT "攻撃指数 :";MAX : IF MAX>.5!+RND*4 THEN TX=MX : TY=MY
350 IF MAX>5 THEN 2000
360 CIRCLE(TX*20,TY*20),10,0,,,,F : PST(TX,TY)=1 : PLAY"o4a"
370 GOSUB 400 : GOTO 140
380 '
390 '
400 IF TX>MXX-2 THEN MXX=TX+2 : IF MXX>31 THEN MXX=31
410 IF TY>MXY-2 THEN MXY=TY+2 : IF MXY>23 THEN MXY=23
420 IF TX<MNX+2 THEN MNX=TX-2 : IF MNX<1 THEN MNX=1
430 IF TY<MNY+2 THEN MNY=TY-2 : IF MNY<1 THEN MNY=1
440 RETURN
980 '
990 '
1000 FOR YY=MNY TO MXY : FOR XX=MNX TO MXX
1010 IF PST(XX,YY)<>A THEN 1120
1020 H=1
1030 T=1 : P=1 : DX=(H>1) : DY=H-3-(H=1)
1040 X=XX : Y=YY
1050 X=X+DX : Y=Y+DY
1060 IF PST(X,Y)=A THEN T=T+1 : P=P+1 : GOTO 1050 ELSE IF PST(X,Y)=0 THEN PTS(X,Y)=PTS(X,Y)+P : P=1 ELSE P=0
1070 X2=XX : Y2=YY
1080 X2=X2-DX : Y2=Y2-DY
1090 IF PST(X2,Y2)=A THEN T=T+1 : P=P+1 : GOTO 1080 ELSE IF PST(X2,Y2)=0 THEN PTS(X2,Y2)=PTS(X2,Y2)+P ELSE PTS(X,Y)=PTS(X,Y)-1
1100 IF T=5 THEN 2000
1110 H=H+1 : IF H<5 THEN 1030
1120 NEXT : NEXT : RETURN
1980 '
1990 '
2000 MOUSE 0 : I=0 : PCMPLAY S%
2010 IF A=-1 THEN 2060
2020 SYMBOL(20,20),"う-む、やはり勝ってしまった。",2,2,7,,,4 : A=3
2030 CIRCLE(TX*20,TY*20),10,4+A
2040 IF MOUSE(2,0) THEN 2080 ELSE IF I=500 THEN A=-A : I=0 : GOTO 2030
2050 I=I+1 : GOTO 2040
2060 SYMBOL(20,20),"なんと、負けてしまった。",2,2,7,,,4
2070 IF MOUSE(2,0)=0 THEN 2070
2080 MOUSE 5 :ERASE PTS,PST,TX,TY: GOTO 50
2090 '
2100 '
2110 *ERROR
2120 PRINT "T-OS v2.1のシステムCDを用意してください。"
2130 PRINT "FJ2ディレクトリ下のデータを使います。"
2140 PRINT "by H.IMOTO appears courtesy of IKK VIDEO"
2150 A$=INPUT$(1)